還記不記得前幾天的課程有教過大家一個關於玩學機的密技,「按下方向鍵處的黃鍵,然後開啟電源開關」,玩學機就會跳出電池狀態的畫面?
這是怎麼做到的呢?我們是否可以也編寫一些呼叫特定功能的組合鍵,讓我們帶著玩學機外出時,可以變成一個方便的檢測工具?愛幻想的我,就想要改造玩學機,例如:
這樣好像很有趣,但我們還需要學習很多有關 micropython 的相關知識。
print(wb.getkey())
此範例請直接在命令列輸入,自行測試按鈕,執行程式,查看數值。
while True:
print(wb.getkey())
這支程式在 Thonny 環境下因為 Thonny 軟體終端機輸出過慢,會變得反應遲緩,您按下的鍵值要很久才會出現。建議您使用 WiFiBoy Python Playground 來測試程式。
對應的 Python 程式
for count in range(int(wb.getkey())):
print('Hello')
如果您按下紅鍵,應該會印出四次的 Hello 字串。您可以自己試試其他的按鍵組合,看輸出的訊息次數是否跟您計算的數值一致。
程式碼如下:
while True:
Key = wb.getkey()
if Key == 32:
print('數值是32,你按了藍色按鈕!')
break;
if Key == 16:
print('數值是16,你按了黃色按鈕!')
break;
if Key == 8:
print('數值是8,你按了綠色按鈕!')
break;
if Key == 4:
print('炸彈引爆,遊戲結束!')
break;
前面四個範例都是終端機的程式,但我們是用 WiFiBoy Python 玩學機啊!應該要將訊息輸出到 LCD 螢幕才對。不過,避免一開始記下過多的函式,我們晚一點解釋本範例程式的細節,先照著用、試著改,這不就是一般人學習程式設計的過程嗎?
我們可以透過上面的範例了解,程式的邏輯判斷並不需要畫面顯示,在命令列中就能成功執行。給人看的應用軟體畫面,應該要另外處理。因此我們可以把這個程式區分為下列幾步:
wb.cls()
while True:
Key = wb.getkey()
if Key == 32:
wb.cls(wb.BLUE)
wb.colors(wb.WHITE, wb.BLUE)
wb.str("You Press", 5, 64, 2, 2)
wb.str("Blue Button!", 20, 80, 2, 2)
if Key == 16:
wb.cls(wb.YELLOW)
wb.colors(wb.PINK, wb.YELLOW)
wb.str("You Press", 5, 64, 2, 2)
wb.str("Yellow Button!", 20, 80, 2, 2)
if Key == 8:
wb.cls(wb.GREEN)
wb.colors(wb.WHITE, wb.GREEN)
wb.str("You Press", 5, 64, 2, 2)
wb.str("Green Button!", 20, 80, 2, 2)
if Key == 4:
wb.cls(wb.RED)
wb.colors(wb.WHITE, wb.RED)
wb.str("Game Over!", 5, 64, 2, 2)
break;
今天學了不少東西,休息一下。明天繼續上「控制LED燈」課程。